由於工作的緣故,開始學習 objective C。之前只學過 Swift , objective C 對我來說完全是個全新的世界,好多從沒見過的概念QQ,第一次見到的時候,還以為是哪裡來的天書,差點要直接辭職了(喂~。
目前學習大約三個星期左右,是個完完全全的小菜鳥,如果有沒寫好的地方,還請各位前輩幫忙糾正,那事不宜遲開始吧!
文章主要參考:http://tw.gitbook.net/objective_c/home.html
一個 Objective-C program 基本上有以下幾個組成:
以 Hello World 範例
#import <Foundation/Foundation.h>
@interface SampleClass : NSObject
- (void) sampleMethed;
@end
@implementation SampleClass
- (void) sampleMethed {
NSLog(@"Hello, World! \n");
}
@end
int main() {
/* my first program in Objective-C */
SampleClass *sampleClass = [[SampleClass alloc] init];
[sampleClass sampleMethed];
return 0;
}
讓我們來看看上述的各個部分
#import <Foundation/Foundation.h>
:是 preprocessor command,它告訴編譯器在開始前要包含 Foundation.h 文件。@interface SampleClass:NSObject
:顯示如何創建接口,像是一種定義。這個類別(Class)繼承 NSObject(所有物件的基類/基礎)。- (void)sampleMethod;
:定義一個方法。@end
:表示 interface 的結束。@implementation SampleClass
:實現接口 SampleClass,有點像是實體化。(void)sampleMethod{}
:method 的具體內容。int main()
:是 program 開始開始執行的主要函數。/*...*/
:註解,不會被執行,用來說明。return 0
:終止 main() 並返回 0 。沒加一樣可以執行。結果
Hello, World!
Objective-C 語言包含了各種 token。token 可以是 keyword, 標識符(id), 常量(contant), 字串(string), 符號。
ex.
NSLog(@"Hello, World! \n");
這個範例包含了六種 tokens,讓我們來一一拆解
NSLog
@
(
"Hello, World! \n"
)
;
在 Objective-C 中,分號的意思是語句終止
,也就是每個單獨的語句必須以分號作結。
ex. 下面有兩個不同的語句,因此有兩個分號
NSLog(
@"Hello, World!"
);
return 0;
主要是用來說明的文字,會被編譯器忽略。
用法:以 /* 和 */ 表示開始跟結束
/* Hello, World */
標識符是用來標識變量、函數或任何其它用戶定義的項目名稱。可以用字母(A~Z)(a~z)、下劃線(_)、數字(0~9),但不能使用如 @、$、% 等符號。
Objective-C可以區分大小寫,因此 Tom
跟 tom
在 Objective-C 是兩種不同的標識符。